#pragma once

#include "HSModelAPI.h"
#include "IRenderable.h"

/**
*  Class for world objects
*  WorldObject
*
*/
class WorldObject : public IRenderable
  {
  public:
    // Put object to a specific point on the ground
    HSMODEL_API virtual void SetPosition(double i_coord_x, double i_coord_y, double i_coord_z);
    HSMODEL_API virtual void SetPosition(const TVector3& i_position);

    HSMODEL_API virtual TVector3 GetPosition() const override;
    HSMODEL_API virtual double GetAngleAroundY() const override;
    HSMODEL_API virtual std::string GetType() const override;
    HSMODEL_API virtual std::string GetName() const override;

  protected:
    HSMODEL_API WorldObject();

    TVector3 m_position;

    std::string m_type;
    std::string m_name;

    static int m_id_cnt;
  };
